{log}: A Logic Programming Language with Finite Sets
نویسندگان
چکیده
An extended logic programming language embodying sets is developed in successive stages, introducing at each stage simple set dictions and operations, and discussing their operational as well as declarative semantics. First, by means of special set terms added to definite Horn Clause logic, one is enabled to define enumerated sets. A new unification algorithm which can cope with set terms is developed and proved to terminate. Moreover, distinguished predicates representing set membership and equality are added to the base language along with their negative counterparts, and SLD resolution is modified accordingly. It is shown that the resulting language allows restricted universal quantifiers in goals and clause bodies to be defined quite simply within the language itself. Finally, abstraction set terms are made available as intensional designations of sets. It is shown that also such terms become directly definable within the language, provided the latter is endowed with negation, which may occur in goals and clause bodies.
منابع مشابه
Using a Set Constraint Solver for Program Verification
{log} is a constraint solver for an expressive theory of finite unbounded sets and binary relations. It is a complete solver for an important fragment of formulas based on operators such as equality, membership, union, domain, composition, etc. where terms are finite unbounded extensional sets and binary relations. It is also a complete solver for formulas based on equality and membership where...
متن کاملA Language for Programming in Logic with Finite Sets
An extended logic programming language is presented, that embodies the fundamental form of set designation based on the (nesting) element insertion operator. The kind of sets to be handled is characterized both by adaptation of a suitable Herbrand universe and via axioms. Predicates 2 and = designating set membership and equality are included in the base language, along with their negative coun...
متن کاملFirst Steps in Integrating {log} into Z/EVES
{log} is a Constraint Logic Programming language implementing a general theory of sets. As such it can determine the satisfiability of a large family of set formulas. Z/EVES is a proof assistant specifically tailored for the Z notation. In turn, the Z notation is based on a theory of sets. Hence, Z/EVES provides many facilities to prove theorems about set theory. We have observed that there are...
متن کاملImperative Programming in Sets with Atoms
We define an imperative programming language, which extends while programs with a type for storing atoms or hereditarily orbit-finite sets. To deal with an orbit-finite set, the language has a loop construction, which is executed in parallel for all elements of an orbit-finite set. We show examples of programs in this language, e.g. a program for minimising deterministic orbit-finite automata. ...
متن کاملVicious Circle Principle and Logic Programs with Aggregates
The paper presents a knowledge representation language A log which extends ASP with aggregates. The goal is to have a language based on simple syntax and clear intuitive and mathematical semantics. We give some properties of A log, an algorithm for computing its answer sets, and comparison with other approaches.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1991